home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
kcl
/
kcl.lha
/
lsp
/
seq.c
< prev
next >
Wrap
C/C++ Source or Header
|
1987-06-04
|
10KB
|
538 lines
/* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
#include <cmpinclude.h>
#include "seq.h"
init_seq(start,size,data)char *start;int size;object data;
{ register object *base=vs_top;register object *sup=base+VM2;vs_check;
Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
base[0]= VV[0];
(void)simple_symlispcall_no_event(VV[16],base+0,1);
MF(VV[17],L2,start,size,data);
MF(VV[18],L3,start,size,data);
MF(VV[19],L4,start,size,data);
MF(VV[20],L5,start,size,data);
MF(VV[21],L6,start,size,data);
MF(VV[22],L7,start,size,data);
MF(VV[23],L8,start,size,data);
vs_top=vs_base=base;
}
/* function definition for MAKE-SEQUENCE */
static L2()
{ register object *base=vs_base;
register object *sup=base+VM3;
vs_reserve(VM3);
if(vs_top-vs_base<2) too_few_arguments();
parse_key(vs_base+2,FALSE,FALSE,1,VV[2]);
vs_top=sup;
base[4]= Cnil;
base[5]= Cnil;
if(!(base[0]==VV[1])){
goto T6;}
if((base[3])==Cnil){
goto T9;}
base[6]= base[1];
base[7]= VV[2];
base[8]= base[2];
vs_top=(vs_base=base+6)+3;
Lmake_list();
return;
T9:;
base[6]= base[1];
vs_top=(vs_base=base+6)+1;
Lmake_list();
return;
T6:;
if(base[0]==VV[3]){
goto T15;}
if(!(base[0]==VV[4])){
goto T16;}
T15:;
base[4]= VV[5];
goto T4;
T16:;
if(base[0]==VV[6]){
goto T20;}
if(!(base[0]==VV[7])){
goto T21;}
T20:;
base[4]= VV[8];
goto T4;
T21:;
if(base[0]==VV[9]){
goto T25;}
if(!(base[0]==VV[10])){
goto T26;}
T25:;
base[4]= Ct;
goto T4;
T26:;
base[6]= base[0];
base[0]= simple_symlispcall_no_event(VV[24],base+6,1);
if(!(car(base[0])==VV[1])){
goto T33;}
if((base[3])==Cnil){
goto T37;}
base[6]= base[1];
base[7]= VV[2];
base[8]= base[2];
vs_top=(vs_base=base+6)+3;
Lmake_list();
return;
T37:;
base[6]= base[1];
vs_top=(vs_base=base+6)+1;
Lmake_list();
return;
T33:;
if(car(base[0])==VV[11]){
goto T43;}
if(car(base[0])==VV[12]){
goto T43;}
base[6]= VV[13];
base[7]= base[0];
vs_top=(vs_base=base+6)+2;
Lerror();
vs_top=sup;
T43:;
base[6]= cadr(base[0]);
if(base[6]==Cnil)goto T50;
base[4]= base[6];
goto T4;
T50:;
base[4]= Ct;
T4:;
base[6]= base[4];
base[7]= base[1];
base[8]= Cnil;
base[9]= Cnil;
base[10]= Cnil;
base[11]= Cnil;
base[12]= Cnil;
vs_top=(vs_base=base+6)+7;
siLmake_vector();
vs_top=sup;
base[5]= vs_base[0];
if((base[3])==Cnil){
goto T61;}
{int V1;
int V2;
V1= 0;
V2= fix(base[1]);
T67:;
if(!((V1)>=(V2))){
goto T68;}
goto T61;
T68:;
(void)(elt_set(base[5],V1,base[2]));
V1= (V1)+1;
goto T67;}
T61:;
vs_top=(vs_base=base+5)+1;
return;
}
/* function definition for CONCATENATE */
static L3()
{ register object *base=vs_base;
register object *sup=base+VM4;
vs_reserve(VM4);
if(vs_top-vs_base<1) too_few_arguments();
vs_base=vs_base+1;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
{int V3;
base[4]= base[0];
{object V4;
{object V5;
object V6= base[1];
if(endp(V6)){
V4= Cnil;
goto T79;}
base[6]=V5=MMcons(Cnil,Cnil);
T80:;
base[7]= (V6->c.c_car);
vs_top=(vs_base=base+7)+1;
Llength();
vs_top=sup;
(V5->c.c_car)= vs_base[0];
if(endp(V6=MMcdr(V6))){
V4= base[6];
goto T79;}
V5=MMcdr(V5)=MMcons(Cnil,Cnil);
goto T80;}
T79:;
vs_top=base+6;
while(!endp(V4))
{vs_push(car(V4));V4=cdr(V4);}
vs_base=base+6;}
Lplus();
vs_top=sup;
base[5]= vs_base[0];
vs_top=(vs_base=base+4)+2;
L2();
vs_top=sup;
base[2]= vs_base[0];
V3= 0;
base[3]= base[1];
T85:;
if((base[3])!=Cnil){
goto T86;}
vs_top=(vs_base=base+2)+1;
return;
T86:;
{int V7;
int V8;
V7= 0;
V8= length(car(base[3]));
T94:;
if(!((V7)>=(V8))){
goto T95;}
goto T90;
T95:;
base[4]= elt(car(base[3]),V7);
(void)(elt_set(base[2],V3,base[4]));
V3= (V3)+(1);
V7= (V7)+1;
goto T94;}
T90:;
base[3]= cdr(base[3]);
goto T85;}
}
/* function definition for MAP */
static L4()
{ register object *base=vs_base;
register object *sup=base+VM5;
vs_reserve(VM5);
if(vs_top-vs_base<3) too_few_arguments();
vs_base=vs_base+3;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[3]= make_cons(base[2],base[3]);
{object V9;
{object V10;
object V11= base[3];
if(endp(V11)){
V9= Cnil;
goto T111;}
base[5]=V10=MMcons(Cnil,Cnil);
T112:;
base[6]= (V11->c.c_car);
vs_top=(vs_base=base+6)+1;
Llength();
vs_top=sup;
(V10->c.c_car)= vs_base[0];
if(endp(V11=MMcdr(V11))){
V9= base[5];
goto T111;}
V10=MMcdr(V10)=MMcons(Cnil,Cnil);
goto T112;}
T111:;
vs_top=base+5;
while(!endp(V9))
{vs_push(car(V9));V9=cdr(V9);}
vs_base=base+5;}
Lmin();
vs_top=sup;
base[4]= vs_base[0];
if((base[0])!=Cnil){
goto T116;}
{int V12;
int V13;
V12= 0;
V13= fix(base[4]);
T121:;
if(!((V12)>=(V13))){
goto T122;}
base[5]= Cnil;
vs_top=(vs_base=base+5)+1;
return;
T122:;
base[5]= base[1];
{object V14;
{object V15;
object V16= base[3];
if(endp(V16)){
V14= Cnil;
goto T128;}
base[6]=V15=MMcons(Cnil,Cnil);
T129:;
(V15->c.c_car)= elt((V16->c.c_car),V12);
if(endp(V16=MMcdr(V16))){
V14= base[6];
goto T128;}
V15=MMcdr(V15)=MMcons(Cnil,Cnil);
goto T129;}
T128:;
vs_top=base+6;
while(!endp(V14))
{vs_push(car(V14));V14=cdr(V14);}
vs_base=base+6;}
super_funcall_no_event(base[5]);
vs_top=sup;
V12= (V12)+1;
goto T121;}
T116:;
base[6]= base[0];
base[7]= base[4];
vs_top=(vs_base=base+6)+2;
L2();
vs_top=sup;
base[5]= vs_base[0];
{int V17;
int V18;
V17= 0;
V18= fix(base[4]);
T140:;
if(!((V17)>=(V18))){
goto T141;}
vs_top=(vs_base=base+5)+1;
return;
T141:;
base[7]= base[1];
{object V19;
{object V20;
object V21= base[3];
if(endp(V21)){
V19= Cnil;
goto T148;}
base[8]=V20=MMcons(Cnil,Cnil);
T149:;
(V20->c.c_car)= elt((V21->c.c_car),V17);
if(endp(V21=MMcdr(V21))){
V19= base[8];
goto T148;}
V20=MMcdr(V20)=MMcons(Cnil,Cnil);
goto T149;}
T148:;
vs_top=base+8;
while(!endp(V19))
{vs_push(car(V19));V19=cdr(V19);}
vs_base=base+8;}
super_funcall_no_event(base[7]);
vs_top=sup;
base[6]= vs_base[0];
(void)(elt_set(base[5],V17,base[6]));
V17= (V17)+1;
goto T140;}
}
/* function definition for SOME */
static L5()
{ register object *base=vs_base;
register object *sup=base+VM6;
vs_reserve(VM6);
if(vs_top-vs_base<2) too_few_arguments();
vs_base=vs_base+2;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= make_cons(base[1],base[2]);
{int V22;
int V23;
V22= 0;
{object V24;
{object V25;
object V26= base[2];
if(endp(V26)){
V24= Cnil;
goto T158;}
base[3]=V25=MMcons(Cnil,Cnil);
T159:;
base[4]= (V26->c.c_car);
vs_top=(vs_base=base+4)+1;
Llength();
vs_top=sup;
(V25->c.c_car)= vs_base[0];
if(endp(V26=MMcdr(V26))){
V24= base[3];
goto T158;}
V25=MMcdr(V25)=MMcons(Cnil,Cnil);
goto T159;}
T158:;
vs_top=base+3;
while(!endp(V24))
{vs_push(car(V24));V24=cdr(V24);}
vs_base=base+3;}
Lmin();
vs_top=sup;
V23= fix(vs_base[0]);
T163:;
if(!((V22)>=(V23))){
goto T164;}
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T164:;
base[4]= base[0];
{object V27;
{object V28;
object V29= base[2];
if(endp(V29)){
V27= Cnil;
goto T171;}
base[5]=V28=MMcons(Cnil,Cnil);
T172:;
(V28->c.c_car)= elt((V29->c.c_car),V22);
if(endp(V29=MMcdr(V29))){
V27= base[5];
goto T171;}
V28=MMcdr(V28)=MMcons(Cnil,Cnil);
goto T172;}
T171:;
vs_top=base+5;
while(!endp(V27))
{vs_push(car(V27));V27=cdr(V27);}
vs_base=base+5;}
super_funcall_no_event(base[4]);
vs_top=sup;
base[3]= vs_base[0];
if((base[3])==Cnil){
goto T168;}
vs_top=(vs_base=base+3)+1;
return;
T168:;
V22= (V22)+1;
goto T163;}
}
/* function definition for EVERY */
static L6()
{ register object *base=vs_base;
register object *sup=base+VM7;
vs_reserve(VM7);
if(vs_top-vs_base<2) too_few_arguments();
vs_base=vs_base+2;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[2]= make_cons(base[1],base[2]);
{int V30;
int V31;
V30= 0;
{object V32;
{object V33;
object V34= base[2];
if(endp(V34)){
V32= Cnil;
goto T183;}
base[3]=V33=MMcons(Cnil,Cnil);
T184:;
base[4]= (V34->c.c_car);
vs_top=(vs_base=base+4)+1;
Llength();
vs_top=sup;
(V33->c.c_car)= vs_base[0];
if(endp(V34=MMcdr(V34))){
V32= base[3];
goto T183;}
V33=MMcdr(V33)=MMcons(Cnil,Cnil);
goto T184;}
T183:;
vs_top=base+3;
while(!endp(V32))
{vs_push(car(V32));V32=cdr(V32);}
vs_base=base+3;}
Lmin();
vs_top=sup;
V31= fix(vs_base[0]);
T188:;
if(!((V30)>=(V31))){
goto T189;}
base[3]= Ct;
vs_top=(vs_base=base+3)+1;
return;
T189:;
base[3]= base[0];
{object V35;
{object V36;
object V37= base[2];
if(endp(V37)){
V35= Cnil;
goto T197;}
base[4]=V36=MMcons(Cnil,Cnil);
T198:;
(V36->c.c_car)= elt((V37->c.c_car),V30);
if(endp(V37=MMcdr(V37))){
V35= base[4];
goto T197;}
V36=MMcdr(V36)=MMcons(Cnil,Cnil);
goto T198;}
T197:;
vs_top=base+4;
while(!endp(V35))
{vs_push(car(V35));V35=cdr(V35);}
vs_base=base+4;}
super_funcall_no_event(base[3]);
vs_top=sup;
if((vs_base[0])!=Cnil){
goto T193;}
base[3]= Cnil;
vs_top=(vs_base=base+3)+1;
return;
T193:;
V30= (V30)+1;
goto T188;}
}
/* function definition for NOTANY */
static L7()
{ register object *base=vs_base;
register object *sup=base+VM8;
vs_reserve(VM8);
if(vs_top-vs_base<2) too_few_arguments();
vs_base=vs_base+2;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[4]= base[0];
base[5]= base[1];
{object V38;
V38= base[2];
vs_top=base+6;
while(!endp(V38))
{vs_push(car(V38));V38=cdr(V38);}
vs_base=base+4;}
L5();
vs_top=sup;
base[3]= vs_base[0];
base[4]= ((base[3])==Cnil?Ct:Cnil);
vs_top=(vs_base=base+4)+1;
return;
}
/* function definition for NOTEVERY */
static L8()
{ register object *base=vs_base;
register object *sup=base+VM9;
vs_reserve(VM9);
if(vs_top-vs_base<2) too_few_arguments();
vs_base=vs_base+2;
vs_top[0]=Cnil;
{object *p=vs_top;
for(;p>vs_base;p--)p[-1]=MMcons(p[-1],p[0]);}
vs_top=sup;
base[4]= base[0];
base[5]= base[1];
{object V39;
V39= base[2];
vs_top=base+6;
while(!endp(V39))
{vs_push(car(V39));V39=cdr(V39);}
vs_base=base+4;}
L6();
vs_top=sup;
base[3]= vs_base[0];
base[4]= ((base[3])==Cnil?Ct:Cnil);
vs_top=(vs_base=base+4)+1;
return;
}